package lambda03;

import org.junit.Test;

/**
 * Lambda表达式格式与使用
 *  interface 接口名{
 *      返回值类型 方法名(形参列表);//接口中唯一一个抽象方法
 *  }
 *  一.完整格式
 *     (参数类型1 参数名1,参数类型2 参数名2,...)->{语句1;语句2;...}
 *     ():小括号中的 参数类型 参数名对应接口中抽象方法的形参列表
 *        如果接口中的抽象方法形参列表为空,那么Lambda表达式的小括号就写 ()
 *     {}:大括号中的语句相当于是实现了该接口中抽象方法的语句
 *
 */
public class LambdaDemo01 {

    @Test
    public void test(){
        method("你好，Lambda表达式",(String str)->{
            System.out.println(str); // 你好，Lambda表达式
        });
    }
    public void method(String str,Printer p ){
        p.print(str);
    }

    @Test
    public void test02(){
        method02(3,12,(int a,int b)->{return  a+b;});
    }

    public void method02(int a,int b,Calculator c){
        System.out.println(c.getSum(a,b));  // 15
    }
}


























